package gestion.horarios.model.jpa.entities;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
import java.util.List;


/**
 * The persistent class for the mallacurricular database table.
 * 
 */
@Entity
@Table(name="mallacurricular")
public class MallaCurricular implements Serializable {
	private static final long serialVersionUID = 1L;
	private int mallaCurricularId;
	private String codigo;
	private String estado;
	private Date fechaAprobacion;
	private Date fechaCreacion;
	private byte niveles;
	private List<DetalleMallaCurricular> detallemallacurriculars;
	private PerfilEgresado perfilegresado;
	private List<PlanCurricular> plancurriculars;
	private List<SolicitudCambioMallaCurricular> solicitudcambiomallacurriculars;

    public MallaCurricular() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(unique=true, nullable=false)
	public int getMallaCurricularId() {
		return this.mallaCurricularId;
	}

	public void setMallaCurricularId(int mallaCurricularId) {
		this.mallaCurricularId = mallaCurricularId;
	}


	@Column(length=45)
	public String getCodigo() {
		return this.codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}


	@Column(length=45)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


    @Temporal( TemporalType.TIMESTAMP)
	public Date getFechaAprobacion() {
		return this.fechaAprobacion;
	}

	public void setFechaAprobacion(Date fechaAprobacion) {
		this.fechaAprobacion = fechaAprobacion;
	}


    @Temporal( TemporalType.TIMESTAMP)
	public Date getFechaCreacion() {
		return this.fechaCreacion;
	}

	public void setFechaCreacion(Date fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}


	public byte getNiveles() {
		return this.niveles;
	}

	public void setNiveles(byte niveles) {
		this.niveles = niveles;
	}


	//bi-directional many-to-one association to DetalleMallaCurricular
	@OneToMany(mappedBy="mallacurricular")
	public List<DetalleMallaCurricular> getDetallemallacurriculars() {
		return this.detallemallacurriculars;
	}

	public void setDetallemallacurriculars(List<DetalleMallaCurricular> detallemallacurriculars) {
		this.detallemallacurriculars = detallemallacurriculars;
	}
	

	//bi-directional many-to-one association to PerfilEgresado
    @ManyToOne
	@JoinColumn(name="PerfilEgresadoId", nullable=false)
	public PerfilEgresado getPerfilegresado() {
		return this.perfilegresado;
	}

	public void setPerfilegresado(PerfilEgresado perfilegresado) {
		this.perfilegresado = perfilegresado;
	}
	

	//bi-directional many-to-one association to PlanCurricular
	@OneToMany(mappedBy="mallacurricular")
	public List<PlanCurricular> getPlancurriculars() {
		return this.plancurriculars;
	}

	public void setPlancurriculars(List<PlanCurricular> plancurriculars) {
		this.plancurriculars = plancurriculars;
	}
	

	//bi-directional many-to-one association to SolicitudCambioMallaCurricular
	@OneToMany(mappedBy="mallacurricular")
	public List<SolicitudCambioMallaCurricular> getSolicitudcambiomallacurriculars() {
		return this.solicitudcambiomallacurriculars;
	}

	public void setSolicitudcambiomallacurriculars(List<SolicitudCambioMallaCurricular> solicitudcambiomallacurriculars) {
		this.solicitudcambiomallacurriculars = solicitudcambiomallacurriculars;
	}
	
}